Results 1 to 9 of 9

Thread: Audio Triggers - randomising

  1. #1

    Default Audio Triggers - randomising

    Hey again!

    Couple of audio questions for you that I cannot resolve...

    1. How would one script multiple random audio triggers?

    2. Any reason why a scripted audio file would sometimes play faster/slower than the original track? Server load perhaps? Priority of audio type set in the configs?
    The one in below code is about 20 seconds in length, and plays at different speeds every time I trigger it!

    Below is code for using a radio for playback.

    But I would like to add more than one song - say 4-5 songs, and have them play randomly when a player triggers it.

    Code:
    main:
    
    //*** Sounds
    local.master = spawn ScriptMaster
    local.master aliascache rac_radio sounds/rac_radio/heyyeah.wav soundparms 4.0 0.0 0.8 0.4 500 4000 local loaded maps "m dm obj"
                                                                              
    local.rac_radio = spawn script_model
    local.rac_radio model "static/static_radio2.tik" //Your ModelPath no /models
    local.rac_radio.origin = (2237 4467 -195 )
    local.rac_radio.angles = ( 0 270 0 )
    local.rac_radio.scale = 1
     
    local.rac_radiotrigger = spawn trigger_use origin ( 2237 4467 -195 )
    local.rac_radiotrigger setsize ( -30 -30 0 ) ( 30 30 60 )
     
    while(1)
    {
     
    local.rac_radiotrigger waittill trigger
    local.rac_radiotrigger notTriggerable
     
    local.rac_radio playsound rac_radio
     
    wait 20
     
    local.rac_radiotrigger triggerable
    }
    end
    Last edited by OhGaz; October 26th, 2015 at 08:28 AM.

  2. #2

    Default

    Code:
    // NORTH AFRIKA
    // ARCHITECTURE: NED, POWZER
    // SCRIPTING: POWZER
    
    
    
    main:
    
    // set scoreboard messages
    setcvar "g_obj_alliedtext1" "CrazyServer"
    setcvar "g_obj_alliedtext2" "Algiers"
    setcvar "g_obj_alliedtext3" "Trick Or"
    setcvar "g_obj_axistext1" "**Treat**"
    setcvar "g_obj_axistext2" ""
    setcvar "g_obj_axistext3" ""
    setcvar "g_gametypestring" "==Trick Or Treat=="
    
    setcvar "g_scoreboardpic" "mohdm7"
    
    	// call additional stuff for playing this map round based is needed
    	if(level.roundbased)
    		thread roundbasedthread
    
    	level waittill prespawn
    
    exec maps/dm/night-halloween.scr
    
    	
    		//*** Precache Dm Stuff
    		exec global/DMprecache.scr
    		
    		exec global/door_locked.scr::lock
    		level.script = maps/dm/mohdm7.scr
    		exec global/ambient.scr mohdm7
    
    		
    	
    	level waittill spawn
    thread secret_doors
    thread welcome_algiers
    thread teams
    thread setup
    thread messages
    thread hallo
    
    
    
    
    
    end
    
    //-----------------------------------------------------------------------------
    
    roundbasedthread:
    
    	// Can specify different scoreboard messages for round based games here.
    
    	level waitTill prespawn
    
    	level waittill spawn
    
    		// set the parameters for this round based match
    		level.dmrespawning = 0 // 1 or 0
    		level.dmroundlimit = 5 // round time limit in minutes
    		level.clockside = kills // set to axis, allies, kills, or draw
    
    	level waittill roundstart
    
    end
    
    
    
    
    
    
    
    
    secret_doors:
    //<---------------(TRICK OR TREAT DOORS)
    
    
    
    local.trig1 = spawn trigger_use
    local.trig1.origin = ( 956.873 805.111 -143.875 ) 
    local.trig1 setsize ( -30 -30 0 ) ( 30 30 80 )
    local.trig1 setthread trick_o_treat
    local.trig1 message "Trick or Treat!" 
    
    local.trig1 = spawn trigger_use
    local.trig1.origin = ( 906.998 1459.449 -143.875 ) 
    local.trig1 setsize ( -30 -30 0 ) ( 30 30 80 )
    local.trig1 setthread trick_o_treat
    local.trig1 message "Trick or Treat!" 
    
    local.trig1 = spawn trigger_use
    local.trig1.origin = ( 23.141 573.060 -183.875 ) 
    local.trig1 setsize ( -30 -30 0 ) ( 30 30 80 )
    local.trig1 setthread trick_o_treat
    local.trig1 message "Trick or Treat!" 
    
    local.trig1 = spawn trigger_use
    local.trig1.origin = ( 23.125 212.703 -199.797 ) 
    local.trig1 setsize ( -30 -30 0 ) ( 30 30 80 )
    local.trig1 setthread trick_o_treat
    local.trig1 message "Trick or Treat!" 
    
    local.trig1 = spawn trigger_use
    local.trig1.origin = ( -0.873 -669.072 -255.875 ) 
    local.trig1 setsize ( -30 -30 0 ) ( 30 30 80 )
    local.trig1 setthread trick_o_treat
    local.trig1 message "Trick or Treat!" 
    
    local.trig1 = spawn trigger_use
    local.trig1.origin = ( 342.177 -1384.874 -279.875 ) 
    local.trig1 setsize ( -30 -30 0 ) ( 30 30 80 )
    local.trig1 setthread trick_o_treat
    local.trig1 message "Trick or Treat!" 
    
    local.trig1 = spawn trigger_use
    local.trig1.origin = ( -218.310 -975.126 -279.875 ) 
    local.trig1 setsize ( -30 -30 0 ) ( 30 30 80 )
    local.trig1 setthread trick_o_treat
    local.trig1 message "Trick or Treat!" 
    
    local.trig1 = spawn trigger_use
    local.trig1.origin = ( -359.792 -1280.861 -279.875 ) 
    local.trig1 setsize ( -30 -30 0 ) ( 30 30 80 )
    local.trig1 setthread trick_o_treat
    local.trig1 message "Trick or Treat!" 
    
    local.trig1 = spawn trigger_use
    local.trig1.origin = ( -1343.205 -1592.874 -277.875 ) 
    local.trig1 setsize ( -30 -30 0 ) ( 30 30 80 )
    local.trig1 setthread trick_o_treat
    local.trig1 message "Trick or Treat!" 
    
    local.trig1 = spawn trigger_use
    local.trig1.origin = ( -879.125 -929.701 -259.875 ) 
    local.trig1 setsize ( -30 -30 0 ) ( 30 30 80 )
    local.trig1 setthread trick_o_treat
    local.trig1 message "Trick or Treat!" 
    
    local.trig1 = spawn trigger_use
    local.trig1.origin = ( -1495.146 -1244.345 -283.875 ) 
    local.trig1 setsize ( -30 -30 0 ) ( 30 30 80 )
    local.trig1 setthread trick_o_treat
    local.trig1 message "Trick or Treat!" 
    
    local.trig1 = spawn trigger_use
    local.trig1.origin = ( -1007.125 -638.123 -211.875 ) 
    local.trig1 setsize ( -30 -30 0 ) ( 30 30 80 )
    local.trig1 setthread trick_o_treat
    local.trig1 message "Trick or Treat!" 
    
    local.trig1 = spawn trigger_use
    local.trig1.origin = ( -1245.636 -407.126 -143.875 ) 
    local.trig1 setsize ( -30 -30 0 ) ( 30 30 80 )
    local.trig1 setthread trick_o_treat
    local.trig1 message "Trick or Treat!" 
    
    local.trig1 = spawn trigger_use
    local.trig1.origin = ( -1166.319 40.875 -115.875 ) 
    local.trig1 setsize ( -30 -30 0 ) ( 30 30 80 )
    local.trig1 setthread trick_o_treat
    local.trig1 message "Trick or Treat!" 
    
    local.trig1 = spawn trigger_use
    local.trig1.origin = ( -1427.193 -184.873 -111.875 ) 
    local.trig1 setsize ( -30 -30 0 ) ( 30 30 80 )
    local.trig1 setthread trick_o_treat
    local.trig1 message "Trick or Treat!" 
    
    local.trig1 = spawn trigger_use
    local.trig1.origin = ( -1544.875 -15.970 -119.875 ) 
    local.trig1 setsize ( -30 -30 0 ) ( 30 30 80 )
    local.trig1 setthread trick_o_treat
    local.trig1 message "Trick or Treat!" 
    
    local.trig1 = spawn trigger_use
    local.trig1.origin = ( -1311.125 368.988 -115.875 ) 
    local.trig1 setsize ( -30 -30 0 ) ( 30 30 80 )
    local.trig1 setthread trick_o_treat
    local.trig1 message "Trick or Treat!" 
    
    local.trig1 = spawn trigger_use
    local.trig1.origin = ( -1015.126 750.526 -91.875 ) 
    local.trig1 setsize ( -30 -30 0 ) ( 30 30 80 )
    local.trig1 setthread trick_o_treat
    local.trig1 message "Trick or Treat!" 
    
    local.trig1 = spawn trigger_use
    local.trig1.origin = ( -1224.870 876.007 -91.875 ) 
    local.trig1 setsize ( -30 -30 0 ) ( 30 30 80 )
    local.trig1 setthread trick_o_treat
    local.trig1 message "Trick or Treat!" 
    
    local.trig1 = spawn trigger_use
    local.trig1.origin = ( -994.529 1536.856 -87.875 ) 
    local.trig1 setsize ( -30 -30 0 ) ( 30 30 80 )
    local.trig1 setthread trick_o_treat
    local.trig1 message "Trick or Treat!" 
    
    local.trig1 = spawn trigger_use
    local.trig1.origin = ( -250.849 1728.874 -79.875 ) 
    local.trig1 setsize ( -30 -30 0 ) ( 30 30 80 )
    local.trig1 setthread trick_o_treat
    local.trig1 message "Trick or Treat!" 
    
    local.trig1 = spawn trigger_use
    local.trig1.origin = ( -832.875 1758.795 -99.875 ) 
    local.trig1 setsize ( -30 -30 0 ) ( 30 30 80 )
    local.trig1 setthread trick_o_treat
    local.trig1 message "Trick or Treat!" 
    
    local.trig1 = spawn trigger_use
    local.trig1.origin = ( -631.126 2115.454 -95.875 ) 
    local.trig1 setsize ( -30 -30 0 ) ( 30 30 80 )
    local.trig1 setthread trick_o_treat
    local.trig1 message "Trick or Treat!" 
    
    local.trig1 = spawn trigger_use
    local.trig1.origin = ( -904.865 2201.553 -95.875 ) 
    local.trig1 setsize ( -30 -30 0 ) ( 30 30 80 )
    local.trig1 setthread trick_o_treat
    local.trig1 message "Trick or Treat!" 
    
    local.trig1 = spawn trigger_use
    local.trig1.origin = ( -1077.585 2359.126 -95.875 ) 
    local.trig1 setsize ( -30 -30 0 ) ( 30 30 80 )
    local.trig1 setthread trick_o_treat
    local.trig1 message "Trick or Treat!" 
    
    local.trig1 = spawn trigger_use
    local.trig1.origin = ( -1181.897 2648.873 -95.875 ) 
    local.trig1 setsize ( -30 -30 0 ) ( 30 30 80 )
    local.trig1 setthread trick_o_treat
    local.trig1 message "Trick or Treat!" 
    
    local.trig1 = spawn trigger_use
    local.trig1.origin = ( -3212.007 720.873 -107.875 ) 
    local.trig1 setsize ( -30 -30 0 ) ( 30 30 80 )
    local.trig1 setthread trick_o_treat
    local.trig1 message "Trick or Treat!" 
    
    local.trig1 = spawn trigger_use
    local.trig1.origin = ( -2911.126 446.827 -107.875 ) 
    local.trig1 setsize ( -30 -30 0 ) ( 30 30 80 )
    local.trig1 setthread trick_o_treat
    local.trig1 message "Trick or Treat!" 
    
    local.trig1 = spawn trigger_use
    local.trig1.origin = ( -2782.196 -760.875 -91.875 ) 
    local.trig1 setsize ( -30 -30 0 ) ( 30 30 80 )
    local.trig1 setthread trick_o_treat
    local.trig1 message "Trick or Treat!" 
    
    local.trig1 = spawn trigger_use
    local.trig1.origin = ( -3152.875 -656.739 -93.875 ) 
    local.trig1 setsize ( -30 -30 0 ) ( 30 30 80 )
    local.trig1 setthread trick_o_treat
    local.trig1 message "Trick or Treat!" 
    
    local.trig1 = spawn trigger_use
    local.trig1.origin = ( -2360.872 -882.211 -131.875 ) 
    local.trig1 setsize ( -30 -30 0 ) ( 30 30 80 )
    local.trig1 setthread trick_o_treat
    local.trig1 message "Trick or Treat!" 
    
    local.trig1 = spawn trigger_use
    local.trig1.origin = ( -1442.835 -744.855 -139.875 ) 
    local.trig1 setsize ( -30 -30 0 ) ( 30 30 80 )
    local.trig1 setthread trick_o_treat
    local.trig1 message "Trick or Treat!" 
    
    local.trig1 = spawn trigger_use
    local.trig1.origin = ( -635.125 -119.342 -111.875 ) 
    local.trig1 setsize ( -30 -30 0 ) ( 30 30 80 )
    local.trig1 setthread trick_o_treat
    local.trig1 message "Trick or Treat!" 
    
    local.trig1 = spawn trigger_use
    local.trig1.origin = ( 1659.252 -747.125 -287.875 ) 
    local.trig1 setsize ( -30 -30 0 ) ( 30 30 80 )
    local.trig1 setthread trick_o_treat
    local.trig1 message "Trick or Treat!" 
    
    local.trig1 = spawn trigger_use
    local.trig1.origin = ( 1658.717 -1748.875 -287.875 ) 
    local.trig1 setsize ( -30 -30 0 ) ( 30 30 80 )
    local.trig1 setthread trick_o_treat
    local.trig1 message "Trick or Treat!" 
    
    local.trig1 = spawn trigger_use
    local.trig1.origin = ( 2036.875 -1132.644 24.125 ) 
    local.trig1 setsize ( -30 -30 0 ) ( 30 30 80 )
    local.trig1 setthread trick_o_treat
    local.trig1 message "Trick or Treat!" 
    
    local.trig1 = spawn trigger_use
    local.trig1.origin = ( 1464.855 -713.120 24.125 ) 
    local.trig1 setsize ( -30 -30 0 ) ( 30 30 80 )
    local.trig1 setthread trick_o_treat
    local.trig1 message "Trick or Treat!" 
    
    local.trig1 = spawn trigger_use
    local.trig1.origin = ( 1456.875 514.042 24.125 ) 
    local.trig1 setsize ( -30 -30 0 ) ( 30 30 80 )
    local.trig1 setthread trick_o_treat
    local.trig1 message "Trick or Treat!" 
    
    end
    
    trick_o_treat:
    local.player=parm.other
    
    
    local.player playsound door
    local.player stufftext "say Trick or Treat!"
    wait 1
    iprintln "A player has TRIED to open a door!!"
    
    
    local.random = randomint(14)
    //local.random = int(9)
    //set this to test each one,make sure its working
    
    
    switch (local.random)
    {
    case 0:
    
     thread Shrink local.player
    break
    
    case 1:
     thread Giant local.player
    break
    
    case 2:
     thread Gravity local.player
    break
    
    case 3:
     thread Normalize local.player
    break
    
    case 4:
     thread EnlightMe local.player
    break
    
    case 5:
     thread GiveItToMe local.player
    break
    
    case 6:
     
    thread downme local.player
    
    break
    
    case 7:
     thread burn local.player
    
    break
    
    case 8:
     thread kill local.player
    
    case 9:
     thread spinme local.player
     
    break
    
    case 10:
    thread HealthPower local.player
     
    break
    
    case 11:
    thread sky1 local.player
    
    break
    
    case 12:
    thread sky2 local.player
    break
    case 13:
    thread music local.player
    break
    
    }
    
    local.player nottriggerable
    self nottriggerable
    
    wait 15
    
    local.player triggerable
    self triggerable
    
    end
    
    
    
    Shrink local.player:
    
     
    if (local.player.Shrink==1)
     end
    local.player.Shrink=1
    wait 1
    local.player iprint "Your A Midget!"
    local.player.scale = .6  
    local.player nottriggerable                                                           
    wait 15
    local.player triggerable
    local.player.Shrink=0
    end   
    
    Giant local.player:
    
    
    if (local.player.Giant==1)
     end
    local.player.Giant=1
    local.player.scale = 2.8 
    local.player iprint "Your A Giant!"  
    local.player nottriggerable                                                        
    wait 15
    local.player triggerable
    local.player.Giant=0
    end  
    
    Gravity local.player:
    
    
    if (local.player.Gravity==1)
     end
    local.player.Gravity=1
    local.player gravity .005  
    local.player iprint "You can Fly!" 
    local.player nottriggerable                                                        
    wait 15
    local.player triggerable
    local.player.Gravity=0
    end  
    
    Normalize local.player:
    
     
    
    if (local.player.Normalize==1)
     end
    local.player.Normalize=1
    local.player.scale = 1 
    local.player iprint "Your A Normal!"
    local.player nottriggerable                                                            
    wait 15
    local.player gravity 1.0                                                           
    wait 5
    local.player light 0 0 0 0 
    local.player.scale = 1
    local.player triggerable                                                        // RGB Size
    local.player.Normalize=0
    end  
    
    
    EnlightMe local.player:
     
    
    
    if (local.player.EnlightMe==1)
     end
    local.player.EnlightMe=1
    
     if (local.player.dmteam == "allies")
      local.player light 0 0 1 150                        // Allies light green
     else
      local.player light 1 0 0 150                        // Nazi Flag is Red, so axis are too
    local.player iprint "Your Glowing!"
    local.player nottriggerable
    wait 15
    local.player triggerable
    local.player light 0 0 0 0
    local.player.EnlightMe=0
    end      
    
    GiveItToMe local.player:
    
    if (local.player.GiveItToMe==1)
     end
    local.player.GiveItToMe=1
    local.player wuss
    local.player iprint "You Have All Weapons!" 
     local.player nottriggerable                                                                  
    wait 15
    local.player triggerable
    local.player.GiveItToMe=0
    end   
    
    HealthPower local.player:
    
    if (local.player.HealthPower==1)
     end
    
    local.player.HealthPower=1
    wait 1
    local.player iprint "Your Have Been Given POWERS Use Them Wisely!"
    local.player volumedamage -1500 
    local.player nottriggerable
    wait 15
    local.player triggerable                                                                
    local.player.HealthPower=0
    end   
    
    burn local.player:
    
     local.player iprint "Haha Trick! Your on Fire!!"
    wait 1
    
     local.player.fire = spawn script_model 
     local.player.fire model "static/fire.tik"
     local.player.fire.origin = local.player.origin
     local.player.fire notsolid
     local.player.fire glue local.player
     local.player.fire targetname ("fire_" + local.player.entnum)
    local.player nottriggerable
     
     while((Isalive local.player) &&(local.player.dmteam != "spectator"))
     {
      wait 1
     local.player hurt 3
     }
    local.player triggerable
     $("fire_" + local.player.entnum) remove
    
    end
    
    kill local.player:
     local.player iprint "Haha Trick!"
    local.player nottriggerable
    wait 6
    local.player iprint "Your Will Meet Your Maker!"
    wait 2
    local.player triggerable
    wait 1
     local.player kill
    end
    
    spinme local.player:
    if (local.player.spinme==1)
     end
    local.player.spinme=1
    wait 1
    local.player iprint "Haha Trick!"
    wait 1
    local.player iprint "Your a Little Dizzy HUH??..LOL"
    while (( isalive local.player && local.player.dmteam != "spectator"))
    {
    local.player turn 360
    wait .02
    }
    local.player.spinme=0
    end
    
    
    downme local.player:
    if (local.player.downme==1)
     end
    local.player iprint "Haha Trick!" 
    wait 1
    local.player iprint "20 Seconds Of Pure Hell!!"
    wait .5
    
    local.angle1 = 82	
    local.angle2 = 129
    local.angle3 = 180
    local.angle1 = float local.angle1
    local.angle2 = float local.angle2
    local.angle3 = float local.angle3
    local.player.viewangles = ( local.angle1 local.angle2 local.angle3 )
    local.player nottriggerable
    wait 20
    local.player triggerable
    local.player.viewangles = ( 0 0 0 )
    
    local.player.downme=0
    end
    
    sky1 local.player:
    local.player iprint "Haha Trick!"
    wait 1
    local.player iprint "Your Have Just Turned Sky Orange And ERIE!!!!"
    wait 2
    setcvar "night" "2"
    local.player nottriggerable
    wait 30
    local.player triggerable
    setcvar "night" "1"
    end
    
    sky2 local.player:
    local.player iprint "Haha Trick!"
    wait 1
    local.player iprint "Your Have Just Turned Sky BLACK!!!!"
    wait 2
    setcvar "night" "0"
    local.player nottriggerable
    wait 30
    local.player triggerable
    setcvar "night" "1"
    end
    
    
    /////////////////////////////////////////////////////////////////////////////////////////////////////
    ///////////////////////////////////////////Welcome Messages/////////////////////////////////////////
    ///////////////////////////////////////////////////////////////////////////////////////////////////
    
    
    welcome_algiers:
    while(1)
    {
    wait 60
    local.messagetosay = " Open Doors To Get A surprise, Have Fun!! "
    thread scrollMsg local.messagetosay
    end
    
    
    scrollMsg local.messagetosay:
    
    huddraw_align 223 left center
    huddraw_font 223 facfont-20
    huddraw_alpha 223 1
    
    huddraw_color 223 1 .6 0
    
    huddraw_rect 223 20 150 200 40
    huddraw_string 223 local.messagetosay
    
    for(local.i=1;local.i<=local.messagetosay.size;local.i++)
    {
    local.x = ""
    for(local.z=1;local.z<=(local.messagetosay.size - local.i);local.z++)
    {
    local.x = (local.x + " ")
    }
    local.tmpstring4 = ""
    for (local.o=0;local.o<local.i;local.o++) local.tmpstring4 = local.tmpstring4 + local.messagetosay[local.o]
    huddraw_string 223 (local.x + local.tmpstring4)
    wait .03
    }
    wait 3
    for (local.o=1;local.o>0;local.o=local.o - 0.01)
    {
    huddraw_alpha 223 local.o
    wait 0.05
    }
    
    huddraw_alpha 223 0 
    }
    
    	
    end
    
    
    
    teams:
    while(1){
     
    huddraw_align  202 right top
    huddraw_font   202 "courier-20"
    huddraw_rect   202 -59 90 100 14
    huddraw_color  202 1 0 0
    huddraw_alpha  202 1.0
    huddraw_string 202 (level.allies)
    huddraw_shader 203 ("textures/hud/allies")
    huddraw_align  203 right top
    huddraw_rect   203 -60 77 14 14
    huddraw_alpha  203 1.0
    huddraw_align  204 right top
    huddraw_font   204 "courier-20"
    huddraw_rect   204 -39 90 100 14
    huddraw_color  204 1 0 0
    huddraw_alpha  204 1.0
    huddraw_string 204 (level.axis)
    huddraw_shader 205 ("textures/hud/axis")
    huddraw_align  205 right top
    huddraw_rect   205 -40 77 14 14
    huddraw_alpha  205 1.0
    huddraw_align  206 right top
    huddraw_font   206 "courier-16"
    huddraw_rect   206 -80 55 100 14
    huddraw_alpha  206 1.0
    huddraw_string 206 ("=TEAMS= ")
    wait 5
    }
    end
    
    setup:
    while(1)
    {
    level.allies = 0
    level.axis = 0
    for(local.i=1;local.i <= $player.size;local.i++) 
    {
    if($player[local.i].dmteam == "axis") 
    level.axis++
    else if($player[local.i].dmteam == "allies") 
    level.allies++
    }
    flash:
    huddraw_color 206 0 1 0
    if ((level.axis > level.allies+1) && (getcvar("g_gametype") != "1"))
    {
    huddraw_color 206 1 0 0
    }
    if ((level.allies > level.axis+1) && (getcvar("g_gametype") != "1"))
    {
    huddraw_color 206 1 0 0
    }
    wait .5
    huddraw_color 206 0 1 0
    wait .5
    }
    end
    
    messages:  
    while(1)
    {  
    wait 35	
    	locprint 50 60 ("Open Locked doors to get a surprise!!")
    wait 5
    	locprint 50 50 ("CrazyServer Halloween MOD!!!")
    wait 12
    }
    end
    hallo:
    wait 12
    exec maps/dm/hall.scr
    wait 7000
    end
    maybe this helps u a bit?

  3. #3

    Default

    Thanks as always, slimbips. Also, LOL at that script. You got an IP of that halloween server in action? Wouldnt mind seeing it in full flight.

    Also, for those curious about random sound triggers, I learnt something new today. You dont need to use randomint for randomising sounds.

    In the ubersound script, you will see sounds that have the same alias name, but with different numbers. If the sound name is called for, without a number, the game will automatically pick one of the numbered sounds at random.

    This explains a problem I was having with a series of announcer voices being randomised when I never asked them to be. Noob error I guess!

    Eg:

    When a wooden door is opened, the door calls for "door_wood_open_move" and the game randomly picks from these four numbered sounds.

    Code:
    aliascache door_wood_open_move1 sound/mechanics/DoorWoodOpen_01.wav soundparms 1.2 0.2 0.8 0.2 160 1600 item loaded maps "m1 m2 m3l2 m3l3 m4 m5 m6 dm moh obj train"
    aliascache door_wood_open_move2 sound/mechanics/DoorWoodOpen_02.wav soundparms 1.2 0.2 0.8 0.2 160 1600 item loaded maps "m1 m2 m3l2 m3l3 m4 m5 m6 dm moh obj train"
    aliascache door_wood_open_move3 sound/mechanics/DoorWoodOpen_03.wav soundparms 1.2 0.2 0.8 0.2 160 1600 item loaded maps "m1 m2 m3l2 m3l3 m4 m5 m6 dm moh obj train"
    aliascache door_wood_open_move4 sound/mechanics/DoorWoodOpen_04.wav soundparms 1.2 0.2 0.8 0.2 160 1600 item loaded maps "m1 m2 m3l2 m3l3 m4 m5 m6 dm moh obj train"
    Huh. There you go.

    Thanks again all!
    Last edited by OhGaz; October 28th, 2015 at 12:19 AM.

  4. #4

    Default

    the trick or treat mod is a very good mod.. its only on algiers but worth a tryzzzzzz-algiers-trick-o-treat.pk3

  5. #5

    Default

    Hey all,

    So I decided to go the route that slimbips mentioned, wtih randomising as having some issues, but I couldnt get it to work. I cannot activate the trigger. No significant errors from console. the model is there, but it wont play the sound.
    Am currently executing from dmprecache, but will exec fromt map's .scr once this is working.
    Any ideas on how I can fix this script to work? Goal is to have a trigger that randomises the audio on a trigger, and displays a msg. Thanks again.

    Code:
    main:
    
    //*** Sounds
    local.master = spawn ScriptMaster
    local.master aliascache rac_radio1 sounds/rac_radio/rac_radio1.wav soundparms 5.0 0.0 0.8 0.4 160 3000 auto loaded maps "m dm obj"
    local.master aliascache rac_radio2 sounds/rac_radio/rac_radio2.wav soundparms 5.0 0.0 0.8 0.4 160 3000 auto loaded maps "m dm obj"
    
    local.rac_radio = spawn script_model
    local.rac_radio model "static/phonograph.tik" //Your ModelPath no /models
    local.rac_radio.origin = ( 2237 4467 -140 )
    local.rac_radio.angles = ( 0 270 0 )
    local.rac_radio.scale = 1
    
    local.rac_radiotrigger = spawn trigger_use origin ( 2237 4467 -140 )
    local.rac_radiotrigger setsize ( -30 -30 0 ) ( 30 30 60 )
    local.rac_radio setthread favourite_song
    local.rac_radio message "Achieved: Your Favourite Song" 
    
    
    favourite_song:
    
    local.player=parm.other
    
    local.random = randomint(2)
    
    switch (local.random)
    {
    case 0:
    local.rac_radio playsound rac_radio1
    break
    
    case 1:
    local.rac_radio playsound rac_radio2
    break
    
    // etc. etc.
    
    } 
    
    local.rac_radiotrigger waittill trigger
    local.rac_radiotrigger notTriggerable
    
    wait 20
    
    local.rac_radiotrigger triggerable
    
    end
    
    end
    Last edited by OhGaz; November 1st, 2015 at 08:34 AM.

  6. #6

    Default

    Is because you dont have the variable equal to the trigger all have to be the same:

    Code:
    main:
    
    //*** Sounds
    local.master = spawn ScriptMaster
    local.master aliascache rac_radio1 sounds/rac_radio/rac_radio1.wav soundparms 5.0 0.0 0.8 0.4 160 3000 auto loaded maps "m dm obj"
    local.master aliascache rac_radio2 sounds/rac_radio/rac_radio2.wav soundparms 5.0 0.0 0.8 0.4 160 3000 auto loaded maps "m dm obj"
    
    local.rac_radio = spawn script_model
    local.rac_radio model "static/phonograph.tik" //Your ModelPath no /models
    local.rac_radio.origin = ( 2237 4467 -140 )
    local.rac_radio.angles = ( 0 270 0 )
    local.rac_radio.scale = 1
    
    local.rac_radiotrigger = spawn trigger_use origin ( 2237 4467 -140 )
    local.rac_radiotrigger setsize ( -30 -30 0 ) ( 30 30 60 )
    local.rac_radio setthread favourite_song
    local.rac_radio message "Achieved: Your Favourite Song" 
    local.rac_radiotrigger setthread favourite_song
    local.rac_radiotrigger message "Achieved: Your Favourite Song" 
    favourite_song:
    
    local.player=parm.other
    
    local.random = randomint(2)
    
    switch (local.random)
    {
    case 0:
    local.rac_radio playsound rac_radio1
    break
    
    case 1:
    local.rac_radio playsound rac_radio2
    break
    
    // etc. etc.
    
    } 
    
    local.rac_radiotrigger waittill trigger
    local.rac_radiotrigger notTriggerable
    
    wait 20
    
    local.rac_radiotrigger triggerable
    
    end
    
    end

  7. #7

    Default

    Thanks, though still a no go.

    Radio appears, message appears but
    getting NIL errors on the
    local.rac_radio playsound rac_radio1
    and
    local.rac_radio playsound rac_radio2

    - as a result the sounds don't play.

    Any tips? Thanks again all. Been at this for 5hrs, and cannot work it
    Running 1.11, btw.
    Last edited by OhGaz; November 1st, 2015 at 11:33 PM.

  8. #8
    Purple Developer Purple Elephant1au's Avatar
    Join Date
    Feb 2012
    Location
    Australia
    Posts
    1,259

    Default

    It is because the setthread favourite_song has no idea what the local.rac_radio variable is, since you made it local to the previous thread.
    It looks to me as if you have combined too different methods for triggers into one.

    One method involves using the setthread to activate when the trigger is triggered, the other involves a loop with a waittill trigger event.

    So you can either use one or the other, weird results happen when you combine them.

    Example
    Setthread method, you will have to pass the local.rac_radio variable along with it, or make it a global (level) variable.
    main:
    
    //*** Sounds
    local.master = spawn ScriptMaster
    local.master aliascache rac_radio1 sounds/rac_radio/rac_radio1.wav soundparms 5.0 0.0 0.8 0.4 160 3000 auto loaded maps "m dm obj"
    local.master aliascache rac_radio2 sounds/rac_radio/rac_radio2.wav soundparms 5.0 0.0 0.8 0.4 160 3000 auto loaded maps "m dm obj"
    
    local.rac_radio = spawn script_model
    local.rac_radio model "static/phonograph.tik" //Your ModelPath no /models
    local.rac_radio.origin = ( 2237 4467 -140 )
    local.rac_radio.angles = ( 0 270 0 )
    local.rac_radio.scale = 1
    
    local.rac_radiotrigger = spawn trigger_use origin ( 2237 4467 -140 )
    local.rac_radiotrigger setsize ( -30 -30 0 ) ( 30 30 60 )
    local.rac_radiotrigger setthread favourite_song local.rac_radio
    local.rac_radiotrigger message "Achieved: Your Favourite Song"
    
    end
    
    favourite_song local.rac_radio:
    
    
    local.player = parm.other
    local.rac_radiotrigger = self
    
    
    local.random = randomint(2)
    
    switch (local.random)
    {
        case 0:
        local.rac_radio playsound rac_radio1
        break
    
        case 1:
        local.rac_radio playsound rac_radio2
        break
    
        // etc. etc.
    
    }
    local.rac_radiotrigger notTriggerable
    wait 20
    local.rac_radiotrigger triggerable
    
    end

    Or you can use it in one thread and with a while loop
    main:
    
    //*** Sounds
    local.master = spawn ScriptMaster
    local.master aliascache rac_radio1 sounds/rac_radio/rac_radio1.wav soundparms 5.0 0.0 0.8 0.4 160 3000 auto loaded maps "m dm obj"
    local.master aliascache rac_radio2 sounds/rac_radio/rac_radio2.wav soundparms 5.0 0.0 0.8 0.4 160 3000 auto loaded maps "m dm obj"
    
    local.rac_radio = spawn script_model
    local.rac_radio model "static/phonograph.tik" //Your ModelPath no /models
    local.rac_radio.origin = ( 2237 4467 -140 )
    local.rac_radio.angles = ( 0 270 0 )
    local.rac_radio.scale = 1
    
    local.rac_radiotrigger = spawn trigger_use origin ( 2237 4467 -140 )
    local.rac_radiotrigger setsize ( -30 -30 0 ) ( 30 30 60 )
    
    
    while(1)
    {
    
        local.rac_radiotrigger waittill trigger
        local.rac_radiotrigger notTriggerable
    
        local.player = parm.other
        local.player iprintln "Achieved: Your Favourite Song"
    
        local.random = randomint(2)
    
        switch (local.random)
        {
            case 0:
            local.rac_radio playsound rac_radio1
            break
    
            case 1:
            local.rac_radio playsound rac_radio2
            break
    
            // etc. etc.
    
        }
        wait 20
        local.rac_radiotrigger triggerable
    }
    
    end


    Each method should work, comes down to personal preference. Using the setthread method is best for multiple triggers that do the same thing, ie play a sound. But if only one trigger, while loop method tends to keep it abit more organised in the one thread.

    Purple's Playground
    OBJ :
    103.29.85.127:12203
    xfire: purpleelephant1au
    email: purpleelephant1au@gmail.com
    skydrive: PurpleElephantSkydrive




  9. #9

    Default

    Ahh....Purple points me in the right direction, once again.

    Thank you, sir. The set_method didnt work - audio just wouldnt play no matter what I did, but the while loop definitely did.

    I now have a few 15-20sec clips that play at random on the radio trigger, but I notice they all randomly play at different speeds every time I trigger them. Sometimes regular, sometimes sped up, sometimes slow-mo style. It's tolerable, but I presume this is related to server-load at that point of time and cannot be avoided?...hmmm.
    Last edited by OhGaz; November 3rd, 2015 at 05:04 PM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •